home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Softdisk Supreme
/
Softdisk Supreme.iso
/
pc
/
DSK Files
/
0-49
/
SD006b.dsk
/
ELECTRONIC.LIBRARY.bas
< prev
next >
Wrap
BASIC Source File
|
2003-06-12
|
15KB
|
307 lines
0 REM "ELECTRONIC LIBRARIAN"
1 REM FROM NOV79 KILOBAUD P44
3 REM BY JOSEPH JAY SANGER, MD
4 REM MODIFIED FOR APPLESOFT
5 REM BY ALAN LACY<CTRL-J>
6 REM "AMPERSAND-INSTR FUNC"
7 REM FROM JAN81 CALL APPLE
8 REM P26 BY LEE REYNOLDS
9 REM MODIFIED BY ALAN LACY<CTRL-J>
10 REM VERSION CURRENT 3-9-82<CTRL-J>
12 ME = 900:MK = 8:D$ = CHR$(4)
13 PRINT D$;"NOMON C,I,O"
14 DIM IN$(ME),MO$(12),KE$(200),JO$(20)
15 DIM CO$(7),K$(MK),SP(ME)
16 GOSUB 8000
18 POKE 1013,76: POKE 1014,0: POKE 1015,3
19 PRINT D$;"BLOAD AMP-INS2"
20 FOR I = 1 TO 20
25 READ JO$(I)
30 IF JO$(I) = "0" THEN 100
35 NEXT
40 GOTO 100
50 PRINT D$;"OPEN";IL$;",L";2 *MK +1
55 PRINT D$;"READ";IL$;",R0"
60 INPUT EX
65 PRINT D$;"CLOSE"
67 RETURN
70 PRINT D$;"OPEN";IL$;",L";2 *MK +1
75 PRINT D$;"WRITE";IL$;",R0"
80 PRINT EX
85 PRINT D$;"CLOSE"
90 RETURN
100 NM = I -1
110 FOR I = 1 TO 12: READ MO$(I): NEXT
120 FOR I = 1 TO 200: READ KE$(I)
125 IF KE$(I) = "0" THEN 200
130 NEXT
200 NK = I -1
210 CO$(1) = "A":CO$(2) = "C":CO$(3) = "D":CO$(4) = "F":CO$(5) = "Q":CO$(6) = "S":CO$(7) = "L"
214 CALL -936
215 VTAB 4: PRINT "GIVE THE NAME OF THE DATA AND INDX FILE DESIRED.": PRINT "INPUT 'NEW' TO START A NEW FILE."
216 INPUT "INPUT 'C' IF CATALOG NEEDED: ";Q$: IF Q$ = "C" THEN PRINT D$;"CATALOG": GOTO 215
218 IF Q$ = "NEW" THEN CALL -936: PRINT : PRINT "GIVE NAME FOR NEW FILE (5 LETTERS) ": INPUT Q$:DL$ = Q$ +".DATA":IL$ = Q$ +".INDX": GOTO 1000
220 DL$ = Q$ +".DATA":IL$ = Q$ +".INDX": GOSUB 8000
223 FLASH : PRINT "PLEASE STAND BY";: NORMAL : PRINT ".....": PRINT : PRINT
225 GOSUB 50: IF EX = 0 THEN IN$(1) = "0": GOTO 300
230 PRINT D$;"OPEN";IL$;",L";2 *MK +1
235 FOR I = 1 TO EX
240 PRINT D$;"READ";IL$;",R";I
245 INPUT IN$(I)
250 IF IN$(I) = "0" THEN NU = NU +1
260 NEXT
270 PRINT D$;"CLOSE"
300 IN$(I) = "0": IF EX >0 THEN 350
305 INPUT "I CAN'T FIND AN INDEX FILE - IS THIS A NEW LIBRARY ";A$: IF LEFT$(A$,1) = "Y" THEN 350
310 GOSUB 320: GOTO 350
320 PRINT "FORMING NEW INDEX": PRINT : PRINT : PRINT :NU = 0
323 PRINT D$;"OPEN";DL$;",L58"
324 FOR I = 1 TO EX
325 PRINT D$;"READ";DL$;",R";I
326 INPUT DU$: INPUT DU$: INPUT DU$: INPUT DU$: INPUT IN$(I)
327 IF IN$(I) = "0" THEN NU = NU +1
328 NEXT
329 PRINT D$;"CLOSE"
330 IN$(I) = "0": GOSUB 4100: RETURN
350 GOSUB 8000: PRINT "CURRENT LIBRARY SIZE IS ";EX -NU;: PRINT " ENTRIES": PRINT : PRINT
400 PRINT
455 PRINT "COMMANDS:": PRINT "---------"
460 PRINT "A (DD AN ENTRY": PRINT "C (HANGE AN ENTRY": PRINT "D (ELETE AN ENTRY": PRINT "F (ORM A NEW INDEX"
470 PRINT "L (IST KEYS OR JOURNALS": PRINT "Q (UIT THE LIBRARY": PRINT "S (EARCH THE LIBRARY"
480 PRINT : INPUT "COMMAND: ";CO$
482 FOR I = 1 TO 7
484 IF LEFT$(CO$,1) = CO$(I) THEN ON I GOTO 1000,2000,3000,310,4000,5000,6000
486 NEXT
490 GOTO 400
1000 CALL -936: VTAB 4: PRINT "ROOM FOR APPROX ";: PRINT ME -EX;" ENTRIES": PRINT : PRINT
1010 INPUT "JOURNAL: ";MG$: IF LEFT$(MG$,1) = "0" THEN 350
1012 EM = 0: GOSUB 1200: IF EM = 1 THEN 1010
1020 INPUT "DATE: ";DA$: IF LEFT$(DA$,1) = "0" THEN 350
1022 ED = 0: GOSUB 1300: IF ED = 1 THEN 1020
1024 INPUT "PAGE NUMBER: ";PA$: IF LEN(PA$) >3 THEN PA$ = LEFT$(PA$,3)
1025 HTAB 36: PRINT "]";: HTAB 1: INPUT "TITLE: ";TI$: IF TI$ = "0" THEN 350
1027 FL = 0: GOSUB 1600: IF FL = 1 THEN 1025
1028 GOSUB 7500: FOR J = 1 TO MK:K$(J) = "": NEXT
1029 FOR J = 1 TO MK
1030 INPUT "KEY: ";K$(J): IF K$(J) = "0" THEN K$(J) = "": GOTO 1050
1032 EK = 0: GOSUB 1400: IF EK = 1 THEN 1030
1034 NEXT
1036 PRINT : PRINT : PRINT "THAT IS ALL THE KEYS ALLOWED": PRINT : PRINT
1050 GOSUB 1100
1052 FOR J = 1 TO EX: IF IN$(J) = "0" THEN 1070
1054 NEXT
1056 IF J = ME THEN PRINT : PRINT "NO MORE ROOM IN LIBRARY": PRINT : GOTO 350
1058 EX = EX +1:J = EX
1070 IN$(J) = KY$: GOSUB 9000
1098 IF J <EX THEN NU = NU -1
1099 GOTO 1000
1100 KY$ = "": FOR II = 1 TO MK:KY$ = KY$ +K$(II): NEXT : RETURN
1200 FOR II = 1 TO NM: IF LEFT$(MG$,3) = LEFT$(JO$(II),3) THEN 1210
1202 NEXT
1205 PRINT : PRINT "INVALID JOURNAL": PRINT :EM = 1: RETURN
1210 IF II <10 THEN 1230
1215 MG$ = LEFT$( STR$(II),2): RETURN
1230 MG$ = "0" + LEFT$( STR$(II),1): RETURN
1300 IF LEN(DA$) <5 THEN 1305
1301 A$ = LEFT$(DA$,3)
1303 FOR II = 1 TO 12:MN$ = LEFT$(MO$(II),3): IF MN$ = A$ THEN 1310
1304 NEXT
1305 PRINT : PRINT "INVALID DATE - ENTER (MMMYY)": PRINT : PRINT :ED = 1: RETURN
1310 IF II <10 THEN 1340
1312 B$ = LEFT$( STR$(II),2): GOTO 1360
1340 B$ = "0" + LEFT$( STR$(II),1)
1360 DA$ = RIGHT$(DA$,2) +B$: RETURN
1400 FOR II = 1 TO NK: IF K$(J) = KE$(II) THEN 1500
1402 NEXT : PRINT : PRINT "INVALID KEY": PRINT :EK = 1: RETURN
1500 KK = 0: FOR JJ = 1 TO 26: IF II <26 THEN 1550
1502 II = II -26:KK = KK +1: NEXT
1550 IF KK = 0 THEN S1$ = "0": GOTO 1570
1552 S1$ = CHR$(64 +KK)
1570 IF II = 0 THEN K$(J) = S1$ +"0": RETURN
1572 K$(J) = S1$ + CHR$(64 +II): RETURN
1600 RL = 14 +2 *MK + LEN(TI$): IF RL <59 THEN FL = 0: RETURN
1602 PRINT : PRINT "INPUT IS TOO LONG - SHORTEN TITLE BY": PRINT RL -58;" CHARACTERS":FL = 1: PRINT : RETURN
2000 A$ = "CHANGED":IS = 0: GOSUB 3100: IF IS = 1 THEN 4000
2002 TP = J:IS$ = IN$(TP): PRINT "HERE ARE THE KEYS FOR THIS ENTRY:": PRINT : GOSUB 2200
2004 PRINT
2040 INPUT "WHAT ITEM TO BE CHANGED (T,J,D,P,K,0) ";A$:A$ = LEFT$(A$,1): IF A$ < >"0" THEN 2050
2041 FL = 0: GOSUB 1600: IF FL = 1 THEN 2040
2042 IF CF = 1 THEN CF = 0: GOSUB 7500
2043 PRINT "HERE IS THE UPDATED ENTRY:": PRINT : GOSUB 5410
2044 PRINT : PRINT "HERE ARE THE KEYWORDS:": PRINT : GOSUB 2200: PRINT
2045 PRINT "DO YOU WANT TO: A (BORT THE EDIT": PRINT " C (HANGE ANOTHER ITEM": INPUT " OR ARE YOU D (ONE ";A$
2046 A$ = LEFT$(A$,1): IF A$ = "D" THEN J = TP: GOSUB 9000: GOTO 350
2047 IF A$ = "C" THEN 2040
2048 IN$(TP) = IS$: GOTO 350
2050 IF A$ = "K" THEN 2120
2052 INPUT "WHAT SHOULD THIS ITEM BE ";B$: IF B$ = "0" THEN 2040
2054 EM = 0: IF A$ < >"J" THEN 2090
2056 TE$ = MG$:MG$ = B$: GOSUB 1200: IF EM = 1 THEN MG$ = TE$
2058 GOTO 2040
2090 IF A$ = "T" THEN TI$ = B$:CF = 1: GOTO 2040
2092 IF A$ = "P" THEN PA$ = B$: GOTO 2040
2094 ED = 0: IF A$ < >"D" THEN 2100
2096 TE$ = DA$:DA$ = B$: GOSUB 1300
2097 IF ED = 1 THEN DA$ = TE$
2098 GOTO 2040
2100 PRINT "WRONG LETTER! TRY AGAIN": GOTO 2040
2120 INPUT "A(DD, C(HANGE, OR D(ELETE A KEY: ";A$:A$ = LEFT$(A$,1): IF A$ = "C" THEN 2140
2121 IF A$ = "D" THEN 2310
2123 IF A$ < >"A" THEN 2180
2130 J = 1: INPUT "WHAT IS THE KEY ";K$(J): IF K$(J) = "0" THEN 2040
2132 EK = 0: GOSUB 1400: IF EK = 1 THEN 2120
2134 IF LEN(KY$) = 2 *MK THEN PRINT "NO MORE KEYWORDS ALLOWED THIS ENTRY": PRINT : GOTO 2040
2136 KY$ = KY$ +K$(J):IN$(TP) = KY$: GOTO 2040
2140 J = 1: INPUT "OLD KEY: ";K$(J): IF K$(J) = "0" THEN 2040
2142 EK = 0: GOSUB 1400: IF EK = 1 THEN 2130
2144 FOR I = 1 TO ( LEN(KY$)/2): IF K$(J) = MID$ (KY$,2 *I -1,2) THEN 2150: NEXT
2146 PRINT "THIS KEYWORD NOT APPLICABLE TO THIS ENTRY": GOTO 2040
2150 INPUT "NEW KEY: ";K$(J): IF K$(J) = "0" THEN 2040
2152 EK = 0: GOSUB 1400: IF EK = 1 THEN 2150
2154 IF 2 *I = LEN(KY$) THEN K2$ = "": GOTO 2160:K2$ = RIGHT$(KY$, LEN(KY$) -2 *I)
2160 IF I = 1 THEN K1$ = "": GOTO 2170:K1$ = LEFT$(KY$,(I -1) *2)
2170 KY$ = K1$ +K$(J) +K2$:IN$(TP) = KY$: GOTO 2040
2180 PRINT "INVALID INPUT": GOTO 2040
2200 FOR II = 1 TO ( LEN(KY$)/2): IF II/2 = INT(II/2) THEN POKE 36,20
2204 GOSUB 7000: PRINT KE$(SN);: IF INT(II/2) = II/2 THEN PRINT
2206 NEXT : IF INT(I/3) < >I/3 THEN PRINT
2210 PRINT : RETURN
2310 J = 1: INPUT "WHAT IS THE KEYWORD TO BE DELETED ";K$(J): IF K$(J) = "0" THEN 2040
2312 EK = 0: GOSUB 1400: IF EK = 1 THEN 2040
2314 FOR I = 1 TO ( LEN(KY$)/2): IF MID$ (KY$,2 *I -1,2) = K$(J) THEN 2370
2316 NEXT
2350 PRINT : PRINT "THIS KEY NOT APPLICABLE TO THIS ENTRY": GOTO 2040
2370 IF 2 *I = LEN(KY$) THEN K2$ = "": GOTO 2380
2372 K2$ = RIGHT$(KY$, LEN(KY$) -2 *I)
2380 IF I = 1 THEN K1$ = "": GOTO 2385
2382 K1$ = LEFT$(KY$,2 *I -2)
2385 KY$ = K1$ +K2$:IN$(JJ) = KY$: GOTO 2040
3000 IS = 0:A$ = "DELETED": GOSUB 3100: IF IS = 1 THEN GOTO 350
3002 IN$(J) = "0":NU = NU +1:KY$ = "0": GOSUB 9000
3004 CALL -936: VTAB 4: PRINT "ENTRY DELETED FROM LIBRARY": PRINT : PRINT : GOTO 350
3100 CALL -936: VTAB 4: PRINT "WHAT IS THE NUMBER OF ENTRY TO BE ": PRINT A$;" (OBTAINED FROM MOST ": INPUT "RECENT SEARCH) ";I: IF I = 0 THEN 400
3102 IF I >NS THEN PRINT : PRINT : PRINT "INVALID ENTRY NUMBER": GOTO 3120
3104 J = SP(I): IF J >EX THEN 3120
3106 PRINT : PRINT "IS THIS THE CORRECT ENTRY?": PRINT : PRINT :M = 1: GOSUB 5400:KY$ = DU$
3108 INPUT N$:N$ = LEFT$(N$,1): IF N$ = "Y" THEN RETURN
3120 PRINT : PRINT "CONDUCT ANOTHER SEARCH AND REPEAT": PRINT :IS = 1: RETURN
4000 CALL -936: VTAB 4: PRINT " THIS SESSION IS TERMINATED....BYE!": END
4100 PRINT "SAVING UPDATED INDEX FILE": PRINT : PRINT
4105 PRINT D$;"OPEN";IL$;",L";MK *2 +1
4110 FOR I = 1 TO EX
4115 PRINT D$;"WRITE";IL$;",R";I
4120 PRINT IN$(I)
4125 NEXT
4130 PRINT D$;"CLOSE"
4135 RETURN
5000 CALL -936: PRINT "FOR LISTING OF ALL RECORDS, INPUT '0'.": PRINT "'0' ALSO ENDS KEY INPUT.": PRINT
5005 FOR J = 1 TO MK:K$(J) = "": NEXT : FOR J = 1 TO MK
5010 INPUT "KEY: ";K$(J): IF LEFT$(K$(J),1) = "0" THEN K$(J) = "": GOTO 5030
5012 EK = 0: GOSUB 1400: IF EK = 1 THEN 5010
5014 NEXT
5030 GOSUB 1100: PRINT "IF YOU WANT HARDCOPY TYPE 'YES' ": INPUT "OTHERWISE HIT <RETURN> ";PF$:PF$ = LEFT$(PF$,1): CALL -936: PRINT "HIT ANY KEY TO ABORT LISTING"
5032 IF PF$ = "Y" THEN PRINT D$;"PR#1": POKE 1785,0
5034 GOSUB 5090: PRINT : IF KY$ < >"" THEN 5040
5036 PRINT "COMPLETE LISTING OF ALL ENTRIES": GOTO 5050
5040 PRINT "LIBRARY SEARCH FOR ARTICLES RELATED TO:": PRINT
5042 FOR II = 1 TO ( LEN(KY$)/2): POKE 36,8: PRINT "-";: POKE 36,10: GOSUB 7000: PRINT KE$(SN): NEXT
5050 PRINT : GOSUB 5100: IF NS = 0 THEN PRINT "NO SUCH ARTICLES IN LIBRARY"
5055 PRINT : GOSUB 5090: PRINT : PRINT
5060 IF PF$ < >"Y" THEN 400
5062 PRINT : PRINT : PRINT : PRINT : PRINT
5070 PRINT "TYPE 'NO' TO TURN PRINTER OFF": INPUT AA$: IF LEFT$(AA$,1) = "N" THEN PRINT D$;"PR#0"
5072 GOTO 350
5090 DA = 39: IF PF$ = "Y" THEN DA = 76
5092 FOR I = 1 TO DA: PRINT "-";: NEXT : PRINT : RETURN
5100 M = 1: GOSUB 5300
5110 SK = ( LEN(KY$)/2): FOR J = 1 TO EX: IF IN$(J) = "0" THEN 5190
5112 IF SK = 0 THEN 5160
5130 FOR I = 1 TO SK
5132 BB$ = MID$ (KY$,2 *I -1,2)
5133 & IN$(J),BB$
5134 IF PEEK(26) = 0 THEN 5190
5150 NEXT I
5160 SP(M) = J: GOSUB 5400:M = M +1
5190 AF = 0: GOSUB 5500: IF AF = 1 THEN INPUT "LISTING ABORTED-<RETURN> TO CONTINUE ";A$: GOTO 5200
5192 IF J = EX THEN INPUT "THAT'S ALL-HIT <RETURN> TO CONTINUE ";A$
5195 NEXT J
5200 IF PF$ = "Y" THEN PRINT "<CTRL-G><CTRL-G><CTRL-G>":PF$ = "N": PRINT D$;"PR#0"
5210 NS = M -1: RETURN
5300 FOR I = 1 TO EX:SP(I) = 0: NEXT : RETURN
5400 PRINT D$;"OPEN";DL$;",L58"
5402 PRINT D$;"READ";DL$;",R";J
5404 INPUT MG$: INPUT DA$: INPUT PA$: INPUT TI$: INPUT DU$
5406 PRINT D$;"CLOSE"
5410 PRINT M;".";: POKE 36,7: PRINT TI$
5412 POKE 36,7: PRINT JO$( VAL(MG$))
5414 POKE 36,7: PRINT MO$( VAL( RIGHT$(DA$,2)));" 19"; LEFT$(DA$,2);
5416 POKE 36,25: PRINT "PAGE ";PA$: PRINT : IF M/5 = INT(M/5) THEN GOSUB 6500
5418 RETURN
5500 IF PEEK( -16384) <128 THEN RETURN
5505 POKE -16368,0: GOSUB 5090: IF PF$ = "Y" THEN 5070
5510 AF = 1: RETURN
6000 CALL -936: VTAB 4: INPUT "DO YOU WANT A LIST OF KEYS OR JOURNALS ";A$
6002 CALL -936:A$ = LEFT$(A$,1): IF A$ = "J" THEN 6200
6004 IF A$ < >"K" THEN 350
6005 PRINT D$"PR#1"
6006 FOR I = 1 TO NK: IF I/2 = INT(I/2) THEN POKE 36,20
6007 PRINT KE$(I);: IF INT(I/2) = I/2 THEN PRINT
6010 NEXT
6012 IF INT(I/2) < >I/2 THEN PRINT
6013 PRINT D$"PR#0"
6014 PRINT : GOSUB 6500: GOTO 350
6200 FOR I = 1 TO NM: IF I/2 = INT(I/2) THEN POKE 36,20
6202 PRINT JO$(I);: IF INT(I/2) = I/2 THEN PRINT
6205 IF INT(I/42) = I/42 THEN GOSUB 6500
6210 NEXT I
6215 IF INT(I/3) < >I/3 THEN PRINT
6220 PRINT : GOSUB 6500: GOTO 350
6500 IF PF$ = "Y" THEN RETURN
6510 INPUT "TYPE <RETURN> TO CONTINUE ";A$: PRINT : RETURN
7000 S1$ = MID$ (KY$,2 *II -1,1):S2$ = MID$ (KY$,2 *II,1): IF S1$ = "0" THEN S1 = 0: GOTO 7200
7002 S1 = ( ASC(S1$) -64) *26
7200 IF S2$ = "0" THEN S2 = 0: GOTO 7400
7202 S2 = ASC(S2$) -64
7400 SN = S1 +S2: RETURN
7500 FOR L = 1 TO LEN(TI$): IF MID$ (TI$,L,1) < >"^" THEN 7600
7502 TL$ = LEFT$(TI$,L -1):TR$ = RIGHT$(TI$,( LEN(TI$) -L)):TI$ = TL$ +"/" +TR$
7600 NEXT L: RETURN
8000 CALL -936: VTAB 4
8002 PRINT "---------------------------------------"
8004 PRINT "! COMPUTER MAGAZINE RETRIEVAL SYSTEM !"
8006 PRINT "---------------------------------------": PRINT : PRINT : PRINT : RETURN
9000 PRINT D$;"OPEN";DL$;",L58"
9002 PRINT D$;"WRITE";DL$;",R";J
9004 PRINT MG$: PRINT DA$: PRINT PA$: PRINT TI$: PRINT KY$
9006 PRINT D$;"CLOSE"
9010 PRINT D$;"OPEN";IL$;",L";2 *MK +1
9012 PRINT D$;"WRITE";IL$;",R";J
9014 PRINT IN$(J)
9016 PRINT D$;"CLOSE"
9020 GOSUB 70
9030 RETURN
9100 DATA BYTE,KILOBAUD,INTERFACE AGE,MICRO,CALL APPLE,CREATIVE COMPUTING,PERSONAL COMPUTING,CONTACT,NIBBLE,SOFTSIDE,ORCHARD,SYSTEMS,TALK,0
9200 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY
9210 DATA AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
9500 DATA *STAR*,3D,6502,ACCOUNTING,ADDRESS,ALGEBRA,ALGORITHM
9505 DATA AMORTIZATION,AMPERSAND,ANALYSIS,APPLE,APPLESOFT,APPLICATION,ARRAY,ART
9510 DATA ARTICLE,ARTIFICIAL INTELLIGENCE,ASSEMBLY,ASTROLOGY,ASTRONOMY,AUDIO,BALLISTICS
9515 DATA BASIC,BIOFEEDBACK,BIOLOGY,BIORYTHM,BOARD,BOOKKEEPING,BUDGET,BUSINESS
9520 DATA CAI,CALCULATION,CALCULUS,CALENDAR,CARTOGRAPHY,CHARTS,CHEMISTRY,CHESS,CODES
9525 DATA COLOR,COMMUNICATION,CONTROL,CONVERSION,CP/M,CROSS-INDEXING,CRYPTOGRAPHY,CURVE
9530 DATA CYBERNETICS,DATA,DATA BASE,DATES,DEBUGGING,DECISION MAKING,DEPRECIATION,DESIGN
9535 DATA DIFFERENTIAL,DIGITIZER,DISK,DIVIDE,DOS,ECONOMICS,EDITING,EDUCATION
9540 DATA ENGINEERING,EQUATIONS,ERROR,EVALUATION,FILES,FINANCE,FLIGHT,FORECASTING
9545 DATA FORTRAN,FREQUENCY,GAMBLING,GAME,GENEALOGY,GENERAL LEDGER,GENETICS,GEOMETRY
9550 DATA GRAPHICS,GRAPHICS PAD,GRAPHS,HARDWARE,HASHING,HEALTH,HIRES,HOME
9555 DATA HOUSEHOLD,HUMOR,I/O,INDEXING,INTEGER,INTELLIGENCE,INVENTORY,INVENTORY
9560 DATA LANGUAGE,LISP,LOGIC,LORES,MACHINE,MAILING LIST,MANAGEMENT,MAPPING
9565 DATA MASS STORAGE,MATH,MATRIX,MEDICAL,MODEL,MODEM,MONITOR,MULTIPLY
9570 DATA MUSIC,NAVIGATION,NUMERICAL,ORGANIZATION,PASCAL,PATTERN RECOGNITION,PAYROLL
9575 DATA PERSONAL,PHYSICS,PLOTTER,PLOTTING,PREDICTIONS,PRINTER,PROBABILITY,PROBLEM
9580 DATA PROBLEM SOLVING,PROGRAM,PROGRAMMING,PUZZLE,QUEUING,REAL ESTATE,RETRIEVAL,ROBOTICS
9585 DATA SCIENCE,SEARCH,SECURITY,SHAPE,SIMULATION,SOFTWARE,SORT,SOUND
9590 DATA SOURCE,SPEECH,SPORTS,STATISTICS,STOCK MARKET,STRATEGY,STRING,STRUCTURE
9595 DATA STRUCTURE,SUBROUTINE,TAXES,TEXT,TEXT EDITING,THEORY,THREE-DEE,TIME
9600 DATA TOKEN,TRAJECTORY,TREND,TRIGONOMETRY,TUTORIAL,UTILITY,VIDEO,WAVES
9605 DATA WEATHER,WORD PROCESSING,Z-80,0